package cn.topevery.garden.entity.query;

import cn.topevery.garden.framework.base.BaseEntity;
import hw.topevery.framework.annotation.DbTable;
import hw.topevery.framework.annotation.DbTableField;
import hw.topevery.framework.dto.PointDto;
import hw.topevery.framework.enums.DbTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.locationtech.jts.geom.Geometry;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 
 *
 * @author code-generate
 * @date 2021-08-06
 */
@Data
@DbTable(tableName = "t_facilities")
public class Facilities extends BaseEntity {
        /**
     * 设施编号
     */
    @DbTableField(columnName = "c_code", dbType = DbTypeEnum.VARCHAR)
    public String code ;

    /**
     * 设施名称
     */
    @DbTableField(columnName = "c_name", dbType = DbTypeEnum.VARCHAR)
    public String name ;

    /**
     * 设施名称简称
     */
    @DbTableField(columnName = "c_name_short", dbType = DbTypeEnum.VARCHAR)
    public String nameShort ;

    /**
     * 所属公园Id  t_park.c_id
     */
    @DbTableField(columnName = "c_park_id", dbType = DbTypeEnum.INTEGER)
    public Integer parkId ;

    /**
     * 所属公园
     */
    @DbTableField(columnName = "c_park_name", dbType = DbTypeEnum.VARCHAR)
    public String parkName ;

    /**
     * 片区Id t_extent.c_id
     */
    @DbTableField(columnName = "c_extent_id", dbType = DbTypeEnum.INTEGER)
    public Integer extentId ;

    /**
     * 片区名称
     */
    @DbTableField(columnName = "c_extent_name", dbType = DbTypeEnum.VARCHAR)
    public String extentName ;

    /**
     * 设施类别Id  t_facilities_class.c_id
     */
    @DbTableField(columnName = "c_type_id", dbType = DbTypeEnum.VARCHAR)
    public String typeId ;

    public String type ;

    /**
     * 设施类别
     */
    @DbTableField(columnName = "c_type_name", dbType = DbTypeEnum.VARCHAR)
    public String typeName ;

    /**
     * 单位
     */
    @DbTableField(columnName = "c_unit", dbType = DbTypeEnum.VARCHAR)
    public String unit ;

    /**
     * 材质
     */
    @DbTableField(columnName = "c_material", dbType = DbTypeEnum.VARCHAR)
    public String material ;

    /**
     * 坐标X
     */
    @DbTableField(columnName = "c_lng_bd09", dbType = DbTypeEnum.DOUBLE)
    public Double lngBd09 ;

    /**
     * 坐标Y
     */
    @DbTableField(columnName = "c_lat_bd09", dbType = DbTypeEnum.DOUBLE)
    public Double latBd09 ;

    /**
     * 坐标 wgs84 x
     */
    @DbTableField(columnName = "c_lng_wgs", dbType = DbTypeEnum.DOUBLE)
    public Double lngWgs ;

    /**
     * 坐标 wgs84 y
     */
    @DbTableField(columnName = "c_lat_wgs", dbType = DbTypeEnum.DOUBLE)
    public Double latWgs ;

    /**
     * 坐标大地2000X
     */
    @DbTableField(columnName = "c_lng_2000", dbType = DbTypeEnum.DOUBLE)
    public Double lng2000 ;

    /**
     * 坐标大地2000Y
     */
    @DbTableField(columnName = "c_lat_2000", dbType = DbTypeEnum.DOUBLE)
    public Double lat2000 ;

    /**
     * 坐标 gcj02 x
     */
    @DbTableField(columnName = "c_lng_gcj02", dbType = DbTypeEnum.DOUBLE)
    public Double lngGcj02 ;

    /**
     * 坐标 gcj02 y
     */
    @DbTableField(columnName = "c_lat_gcj02", dbType = DbTypeEnum.DOUBLE)
    public Double latGcj02 ;

    /**
     * 坐标 百度墨卡托 x
     */
    @DbTableField(columnName = "c_lng_bdmkt", dbType = DbTypeEnum.DOUBLE)
    public Double lngBdmkt ;

    /**
     * 坐标 百度墨卡托 Y
     */
    @DbTableField(columnName = "c_lat_bdmkt", dbType = DbTypeEnum.DOUBLE)
    public Double latBdmkt ;

    /**
     * 范围 空间数据
     */
    @DbTableField(columnName = "c_geom", dbType = DbTypeEnum.OTHER)
    public Geometry geom ;

    /**
     * 位置描述
     */
    @DbTableField(columnName = "c_address", dbType = DbTypeEnum.VARCHAR)
    public String address ;

    /**
     * 设置状态（1 正常、2 损坏、3 停用）
     */
    @DbTableField(columnName = "c_status", dbType = DbTypeEnum.SMALLINT)
    public Short status ;

    /**
     * 设施说明
     */
    @DbTableField(columnName = "c_desc", dbType = DbTypeEnum.VARCHAR)
    public String desc ;

    /**
     * 空间数据类型
     */
    @DbTableField(columnName = "c_geom_type", dbType = DbTypeEnum.VARCHAR)
    private Integer geomType;

    /**
     * 创建时间
     */
    public LocalDateTime dbCreateDate ;

    /**
     * 创建人ID  t_sys_user.c_id
     */
    public Integer dbCreateId ;

    /**
     * 更新时间
     */
    public LocalDateTime dbLastUpdateDate ;

    /**
     * 更新人员ID t_sys_user.c_id
     */
    public Integer dbLastUpdateId ;

    /**
     * 数量
     */
    public String totalNumber ;

    @ApiModelProperty(value = "范围点信息")
    public List<List<PointDto>> mapRangesPoints;
}
